0%

Redis Cluster配置

1 安装Ruby

Redis cluster的运行需要使用Ruby

1
2
3
4
5
6
7
8
9
10
11
12
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.gz

tar -zxvf ruby-2.6.1.tar.gz

cd ruby-2.6.1
./configure

sudo make

sudo make install

gem install redis

2 编写配置文件

以机器ip地址 172.17.0.133 为例。

/etc/redis/中创建7000.conf,修改如下

1
2
3
4
5
6
7
8
9
10
11
bind 172.17.0.133 
port 7000
pidfile /var/run/redis_7000.pid
logfile /var/log/redis_7000.log
dir /var/lib/redis/7000
maxmemory 300000000
maxmemory-policy volatile-lru
appendonly yes
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 10000

复制并创建另外5个配置文件,注意修改配置的细节信息

  • 7001.conf
  • 7002.conf
  • 7003.conf
  • 7004.conf
  • 7005.conf

3 启动6个redis实例

1
2
3
4
5
6
redis-server /etc/redis/7000.conf
redis-server /etc/redis/7001.conf
redis-server /etc/redis/7002.conf
redis-server /etc/redis/7003.conf
redis-server /etc/redis/7004.conf
redis-server /etc/redis/7005.conf

4 启动cluster集群

1
2
3
sudo cp /root/redis-4.0.13/src/redis-trib.rb /usr/local/bin/

redis-trib.rb create --replicas 1 172.17.0.133:7000 172.17.0.133:7001 172.17.0.133:7002 172.17.0.133:7003 172.17.0.133:7004 172.17.0.133:7005

5 问题处理

如果遇到 waiting for the cluster to join的问题,可从如下两点排错:

  • 配置文件中需要移除 bind 127.0.0.1
  • 1xxxx端口防火墙是否放开 (cluster集群内需要使用1xxxx端口进行通讯)

6 Cluster辅助命令

  • redis-trib.rb help
  • CLUSTER INFO 打印集群的信息
  • CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。

  • CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点

  • CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。